home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / strlib.zip / STRTRIM.C < prev    next >
Text File  |  1993-01-04  |  1KB  |  47 lines

  1.  
  2. /*  File   : strtrim.c
  3.     Author : Richard A. O'Keefe.
  4.     Updated: 20 April 1984
  5.     Defines: strtrim()
  6.  
  7.     strtrim(dst, src, set, ends)
  8.     copies src to dst, but will skip leading characters in set if "ends"
  9.     is <= 0, and will skip trailing characters in set if ends is >= 0.
  10.     Thus there are three cases:
  11.         ends < 0 :      trim a prefix
  12.         ends = 0 :      trim a prefix and a suffix both
  13.         ends > 0 :      trim a suffix
  14.     To compress internal runs, see strpack.  The normal use of this is
  15.     strtrim(buffer, buffer, " \t", 0);  The result is the address of the
  16.     NUL which now terminates dst.
  17. */
  18.  
  19. #include "strings.h"
  20. #include "_str2set.h"
  21.  
  22. char *strtrim(dst, src, set, ends)
  23.     register char *dst, *src;
  24.     char *set;
  25.     int ends;
  26.     {
  27.         _str2set(set);
  28.         if (ends <= 0) {
  29.             while (_set_vec[*src] == _set_ctr) src++;
  30.         }
  31.         if (ends >= 0) {
  32.             register int chr;
  33.             register char *save = dst;
  34.             while (chr = *src++) {
  35.                 *dst++ = chr;
  36.                 if (_set_vec[chr] != _set_ctr) save = dst;
  37.             }
  38.             dst = save, *dst = NUL;
  39.         } else {
  40.             while (*dst++ = *src++) ;
  41.             --dst;
  42.         }
  43.         return dst;
  44.     }
  45.  
  46.  
  47.